package wh.coach._ser;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * @author hangwen
 * @date 2023/7/15
 */
public class JsonHelper {

    //作业
    //1. 日期的表示——知道jaskson提供哪些方案处理日期类型
    //2. int/Integer boolean/Boolean json处理有什么差异
    //int/boolean 是原始类型，不能为 null。而Integer和Boolean可以为null
    //3. 如果一个javaBean有10个属性，我只需要序列化和反序列化其中8个 该怎么办？
    //4. 多态 见Person类的Address
    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

    public static <T> T readFromJson(String json, Class<T> type) {
        try {
            return OBJECT_MAPPER.readValue(json, type);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }
    }

    public static String writeAsString(Object obj) {
        try {
            return OBJECT_MAPPER.writeValueAsString(obj);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }
    }

}
